/*
 * @(#)BerichtGenerator.java
 * 1.0, 2013-01-24
 */
package de.hdm.gruppenkalender.team04.report;

import de.hdm.gruppenkalender.team04.data.Kalender;
import de.hdm.gruppenkalender.team04.data.Kategorie;
import de.hdm.gruppenkalender.team04.data.Person;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.sql.Timestamp;

/**
 * Der Berichtgenerator dient zur Erzeugung von Berichten,
 * die aus einer Menge von Daten bestehen.
 * Es sind mehrere erstelle-Methoden implementiert,
 * bei denen anwendungsfallspezifische Parameterlisten vorliegen.
 * Beispielsweise kann ein Bericht von einer bestimmten Person ausgegeben werden, 
 * oder aber Einträge gefiltert nach einer gewissen Kategorie
 * 
 * @author Mathias Bendel (mb167)
 * @author Björn Fichnter (bf023)
 * @author Stefan Hettich (sh176)
 * @author René Kugel (rk044)
 * @author Mark Leonberger (ml072)
 * @author Marta Przybylski (mp070)
 *
 * @version 1.0, 2013-01-24
 *
 * @see BerichtGeneratorImpl
 * 
 */
// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.7D8EA273-5C40-C4F0-D6E9-CED79ECB8323]
// </editor-fold> 
public interface BerichtGenerator extends Remote {

    /**
     * Erstellt den Bereicht, bei dem Person, Kategorie, Kalender, Start-
     * und Endzeitpunkt gefiltert werden.
     * 
     * @param   person
     * @param   kalender
     * @param   kategorie
     * @param   von
     * @param   bis
     * @return  String          HTML-Report
     * @throws  RemoteException
     */
    public String erstelleReport(Person person, Kalender kalender,
            Kategorie kategorie, Timestamp von, Timestamp bis) throws
            RemoteException;
}
